﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Library.DAL
{
    public class HoaDonNhapDAL
    {
        public static int Add(BIZ.HoaDonNhapBIZ hz)
        {
            NETMobileEntities db = new NETMobileEntities();
            HoaDonNhap h = new HoaDonNhap();
            h.GiaTri = hz.GiaTri;
            h.Ngay = hz.Ngay;
            db.HoaDonNhaps.AddObject(h);
            db.SaveChanges();
            return h.ID;
        }

        public static List<BIZ.HoaDonNhapBIZ> FindAll()
        {
            NETMobileEntities db = new NETMobileEntities();
            List<BIZ.HoaDonNhapBIZ> listhoadon = new List<BIZ.HoaDonNhapBIZ>();
            BIZ.HoaDonNhapBIZ hoadon;

            var r = from a in db.HoaDonNhaps select a;

            foreach (DAL.HoaDonNhap i in r)
            {
                hoadon = new BIZ.HoaDonNhapBIZ();
                hoadon.ID = i.ID;
                hoadon.Ngay = i.Ngay;
                hoadon.GiaTri = i.GiaTri;

                listhoadon.Add(hoadon);
            }

            return listhoadon;
        }

        public static List<BIZ.HoaDonNhapBIZ> FindByID(int id)
        {
            NETMobileEntities db = new NETMobileEntities();
            List<BIZ.HoaDonNhapBIZ> listhoadon = new List<BIZ.HoaDonNhapBIZ>();
            BIZ.HoaDonNhapBIZ hoadon;

            var r = from a in db.HoaDonNhaps where a.ID == id select a;

            if (r.Count() == 0)
            {
                return null;
            }

            foreach (DAL.HoaDonNhap i in r)
            {
                hoadon = new BIZ.HoaDonNhapBIZ();
                hoadon.ID = i.ID;
                hoadon.Ngay = i.Ngay;
                hoadon.GiaTri = i.GiaTri;

                listhoadon.Add(hoadon);
            }

            return listhoadon;
        }

        public static List<BIZ.HoaDonNhapBIZ> FindByDate(DateTime d1, DateTime d2)
        {
            NETMobileEntities db = new NETMobileEntities();
            List<BIZ.HoaDonNhapBIZ> listhoadon = new List<BIZ.HoaDonNhapBIZ>();
            BIZ.HoaDonNhapBIZ hoadon;

            var r = from a in db.HoaDonNhaps
                    where a.Ngay.Value.Year >= d1.Year && a.Ngay.Value.Year <= d2.Year
                          && a.Ngay.Value.Month >= d1.Month && a.Ngay.Value.Month <= d2.Month
                          && a.Ngay.Value.Day >= d1.Day && a.Ngay.Value.Day <= d2.Day
                    select a;

            if (r.Count() == 0)
            {
                return null;
            }

            foreach (DAL.HoaDonNhap i in r)
            {
                hoadon = new BIZ.HoaDonNhapBIZ();
                hoadon.ID = i.ID;
                hoadon.Ngay = i.Ngay;
                hoadon.GiaTri = i.GiaTri;

                listhoadon.Add(hoadon);
            }

            return listhoadon;
        }
    }
}
